In network functions virtualization (NFV), a general-purpose hardware device and a virtualization technology are used to fulfill a function of a dedicated device in a conventional network, so as to reduce high deployment costs of the dedicated device. Software is not bound to dedicated hardware, so that a function of a network device no longer depends on the dedicated hardware. In addition, cloud computing is used, so that resources can be shared fully and flexibly, new services can be rapidly developed and deployed, and automatic deployment, auto scaling, fault isolation, fault self-recovery, and the like can be implemented based on an actual service requirement. In an NFV architecture, a party that receives an instantiation request and performs instantiation processing on a corresponding service (deploys the service) according to the request is referred to as a virtualization service provider (service provider for short), and a party that initiates the instantiation request is referred to as a service requester.
A virtualized network service (NS) in NFV may be, for example, an IP multimedia subsystem (IMS) network service, or an evolved packet core (EPC) service. One NS may include several virtualized network function (VNF) modules, which are also referred to as virtualized network elements. A VNF is a software implementation of a network function that may be deployed in an NFV infrastructure. During virtualization deployment of an NS, a service requester first needs to submit network service descriptor (NSD) to a service provider. The NSD mainly describes a topology of the network service and descriptor of included VNFs (VNF descriptor, VNFD). In addition, the service requester further needs to submit information about forwarding paths of the service among the VNFs (VNF forwarding graph, VNFFG) to the service provider.
For path allocation to a data flow of a mobile network in the prior art, refer to a diagram of a network architecture shown in FIG. 1. A PCRF 102 learns a current network status of a subscriber according to subscription data of the subscriber in a subscriber database 101 by using a gateway 103, selects a logical service chain, and sends an identifier of the selected logical service chain to a traffic controller 104. The traffic controller 104 sends a request to a service controller 106 according to the identifier of the selected logical service chain, to obtain an identifier of a physical service chain. After receiving the request of the traffic controller 104, the service controller 106 obtains, from a service manager 105, information about the logical service chain corresponding to the identifier of the logical service chain, and allocates actual physical network elements 108 according to the returned information about the logical service chain.
For example, information about a logical service chain corresponding to a path forwarding identifier: video optimization sequentially includes a TCP proxy, a video cache, and a NAT. The TCP proxy selected by the service controller is a physical network element whose IP address is 10.10.1.1. The video cache selected by the service controller is a physical network element whose IP address is 10.10.2.2. The NAT selected by the service controller is a physical network element whose IP address is 10.10.4.4. In addition, the service controller generates information about a physical service chain, allocates an identifier of the physical service chain to the physical service chain, generates a routing and forwarding table by using the IP addresses of the allocated actual physical devices and the identifier of the physical service chain, and sends the generated routing and forwarding table to a corresponding router for configuration by the router. The routing and forwarding table is shown in Table 1.
TABLE 1Physical service chainidentifierRankNext-hop address10310.10.1.110210.10.2.210110.10.4.4
In addition, the service controller further sends the generated routing and forwarding table to the traffic controller. Therefore, after receiving data, the traffic controller adds the identifier of the physical service chain and a sequence in the physical service chain to the data, and sends the data to the router. The router determines a route according to the stored routing and forwarding table and the identifier of the physical service chain and the sequence in the physical service chain that are added to the data.
It can be learned from above that, a traffic controller applies to a service controller for a configuration requirement of a physical service chain of a service in an existing mobile network. In the existing mobile network, a service controller that interacts with a traffic controller is configured in advance for the traffic controller. However, based on an existing cloud computing system, for example, in an NFV architecture, a policy and charging rules function (PCRF), a gateway (GW), a traffic controller, and another network element device all run on virtualized network elements, that is, VNFs. The VNFs all run in virtual machines, and a network functions virtualization infrastructure (NFVI) provides virtual resources. The virtual resources provided to the VNFs by the NFVI include a virtual computing resource, a virtual storage resource, a virtual network resource, and the like. The virtual network resource includes a virtual network connection provided by a virtual switch (vSwitch) and route control provided by a service controller (for example, an SDN controller). However, in the existing NFV architecture, the VNF virtualized network elements are all managed by a virtual switch and communicate with the virtual switch. A software-defined networking (SDN) controller manages multiple virtual switches. In addition, in an NFV-based architecture, a virtual switch and a virtual controller for managing a VNF network element are not permanently configured for the VNF network element.
Therefore, a service chain cannot be allocated to a service in a mobile network in the existing NFV architecture. Consequently, a network element for implementing the service in the mobile network cannot obtain information about a service chain for transmitting service data, and therefore, the service data cannot be routed.